/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.sistema.aplicacao;

import javax.swing.text.AttributeSet;
import javax.swing.text.BadLocationException;
import javax.swing.text.PlainDocument;

/**
 *
 * @author gr
 */
    public class TextDocument extends PlainDocument {
       /**
        * Tamanho máximo default do componente = 4000 caracteres
        */
       private int tamanhoMax = 4000;
       private static final String ACCEPTED_CHARS = "0123456789";


       /**
        * Cria o validador com o tamanho máximo de 4000
        */
      public TextDocument() {
         super();
      }

      /**
       * Cria o validador com o tamanho definido no parâmetro
       *
       * @param tamanho Tamanho máximo da cadeia de caracteres
       */
      public TextDocument(int tamanho) {
         super();
         tamanhoMax = tamanho;
      }

       /**
       * A cada tecla pressionada valida a tecla verifica se não está no máximo que o campo pode aguentar.
       *
       * @see javax.swing.text.Document#insertString(int, java.lang.String, javax.swing.text.AttributeSet)
       */
      public void insertString(int offs, String str, AttributeSet a)
          throws BadLocationException {

          if (str == null) return;

          String oldString = getText (0, getLength() );
          String newString = oldString.substring(0, offs) + str + oldString.substring(offs);

          if (newString.length() > tamanhoMax) {
             super.insertString(offs, "", a);
          } else {
             // Repassa para o pai.
//              if ( ACCEPTED_CHARS.contains( newString  ) )
//                {
//                   super.insertString(offs, str, a);
//                }

                   super.insertString(offs, str, a);
                
             
          }

      }

   }